Xây dựng một lời giải Bài_toán_tám_quân_hậu

Có một giải thuật đơn giản tìm một lời giải cho bài toán n quân hậu với n = 1 hoặc n ≥ 4:

  1. Chia n cho 12 lấy số dư r. (r= 8 với bài toán tám quân hậu).
  2. Viết lần lượt các số chẵn từ 2 đến n.
  3. Nếu số dư r là 3 hoặc 9, chuyển 2 xuống cuối danh sách.
  4. Bổ sung lần lượt các số lẻ từ 1 đến n vào cuối danh sách, nhưng nếu r là 8, đổi chỗ từng cặp nghĩa là được 3, 1, 7, 5, 11, 9, ….
  5. Nếu r = 2, đổi chỗ 1 và 3, sau đó chuyển 5 xuống cuối danh sách.
  6. Nếu r = 3 hoặc 9, chuyển 1 và 3 xuống cuối danh sách.
  7. Lấy danh sách trên làm danh sách chỉ số cột, ghép vào danh sách chỉ số dòng theo thứ tự tự nhiên ta được một lời giải của bài toán.

Sau đây là một số ví dụ

  • 14 quân hậu (r = 2): 2, 4, 6, 8, 10, 12, 14, 3, 1, 7, 9, 11, 13, 5.
  • 15 quân hậu (r = 3): 4, 6, 8, 10, 12, 14, 2, 5, 7, 9, 11, 13, 15, 1, 3.
  • 20 quân hậu (r= 8): 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 1, 7, 5, 11, 9, 15, 13, 19, 17.

Tài liệu tham khảo

WikiPedia: Bài_toán_tám_quân_hậu http://www.durangobill.com/N_Queens.html http://mathworld.wolfram.com/QueensProblem.html http://kti.ms.mff.cuni.cz/~bartak/constraints/inde... http://firefang.net/english/n-queens http://www.liacs.nl/home/kosters/nqueens.html http://www.rodo.nl/nqueens_in_c++.pdf http://bridges.canterbury.ac.nz/features/eight.htm... https://web.archive.org/web/20061014001400/http://... https://web.archive.org/web/20070928103041/http://... https://web.archive.org/web/20071006032830/http://...